/**
给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。
请你找出平均数最大且 长度为 k 的连续子数组，并输出该最大平均数。
任何误差小于 10-5 的答案都将被视为正确答案。
 */

/**
示例 1：
输入：nums = [1,12,-5,-6,50,3], k = 4
输出：12.75
解释：最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
示例 2：
输入：nums = [5], k = 1
输出：5.00000
 */

/**
 * 思路
 * 刚开始使用嵌套循环，每循环一次，去将对于的数组循环累加，但是嵌套循环太耗时了，所有需要将第二次循环分解
 * 每个子数组都为上一个子数组去掉第一项并加上后一项，所以计算出第一次的子数组总和，后面每次循环总和为sum = sum - nums[i - 1] + nums[i + k - 1]
 * 比较max和sum的值
 */
var findMaxAverage = function (nums, k) {
    let i = 1
    let max = null
    let sum = 0
    for (let m = 0; m < k; m++) {
        sum = sum + nums[m]
    }
    max = sum
    while (i <= nums.length - k) {
        sum = sum - nums[i - 1] + nums[i + k - 1]
        max = Math.max(max, sum)
        i++
    }
    return max / k
};